Today's Flash memory devices store information with high density on Flash cells with ever smaller dimensions. In addition, Multi-Level Cells (MLC) store several bits per cell by setting the amount of charge in the cell. The amount of charge is then measured by a detector, as measured by a threshold voltage of the transistor gate denoted by VT. Due to inaccuracies during the programming procedure and charge loss due to time and temperature (also known as retention), the measured levels during a Read operation suffers from detection errors. The small dimensions of the Flash cells result in cells that can store very small amounts of charge, enhancing the effects of inaccuracies due to programming and retention. Thus, new single level cells (SLC) and MLC (two or more bits per cell) devices have significantly increased bit error rate (BER), decreasing the reliability of the device.
Flash devices are organized into (physical) pages. Each page contains a section allocated for data (512 bytes-8 Kbytes) and a small amount of spare bytes (16-32 bytes for every 512 data bytes) containing redundancy and back pointers. The redundancy bytes are used to store error correcting information, for correcting errors which may have occurred during the page Read. Each Read and Program operation is performed on an entire page. A number of pages are grouped together to form an Erase Block (EB). A page cannot be erased unless the entire EB which contains it is erased.
An important measure of a Flash device quality is the number of times (Np) it may be reprogrammed and the period that it can store information (usually 10 years) before irrecoverable errors occur. The higher the number of program-erase cycles, the higher the BER. Thus, today's MLC with 2 bits per cell devices can perform around Np=10,000 cycles and 10 years retention before the allocation of 16 bytes of redundancy per 512 bytes of data bytes becomes insufficient to correct errors. SLC devices usually perform better but obtain a much lower density and hence their prices are much higher. Note that following Np program-erase cycles the device is still operational but the BER is higher.
One factor that increases the number of cycles is the fact that an entire block must be erased at once. For example, when a single page of a programmed block is to be modified, in many cases (e.g. SD cards and USB drives), the programmed block is copied to an erased block and the relevant page is replaced in the process. Thus, a single page change requires the programming of an entire block and an erasure of a block. This process is usually referred to as a read modify write operation.